1. Field of the Invention
The present invention generally relates to a method and system for loose coupling (e.g., linking) domain and document components, and more specifically to a method and system for dynamic binding of document and domain knowledge during an interactive document assembly configuration session.
2. Description of the Related Art
Conventional document assembly systems represent documents as collections of paragraphs of text or “document components”. Document assembly systems draw from a repository of these components. Given the answers to a series of questions, such systems select components from the repository and sequence them composing an initial draft of a completed document.
Document components may contain “Variable Text” (e.g., typically referred to as “variables”). Variables are represented within a document component by a particular word or phrase, typically referred to as a “field”. The document assembly systems may assign different values to a variable depending on answers to the initial set of questions.
Document components refer to elements of some domain model. For example, in the case of a loan agreement, the loan document refers to the name and address of the lender or the amount of the loan. These elements make up a “domain model”.
In conventional document assembly systems, domain knowledge is captured as answers to a collection of questions. These answers are used to select and assemble a series of document components. The series of questions and their answers are not organized as an object model, and hence has no structure or depth.
As is well-known, object modeling is a technique for modeling software systems and is often used to model the domain about which software systems or other abstract systems are written. In an object model a domain is broken down into discrete entities called “objects”. Objects, in turn, possess “attributes” that represent properties of the object. An object model is a formal, symbolic representation of the objects in a domain, and the relationships between those objects. An object model diagram is any visual representation of an object model (e.g., a tree, a graph or more specifically a Unified Modeling Language (UML) diagram, etc.). Reusable subsets of an object model representing a domain are called “domain components”. Most typically, a domain component contains a single object and its properties.
Thus, domain components are symbolic encodings of entities and their attributes/properties, about which a document component is written (e.g., things the document component's text or outline might refer to). These are typically represented as objects in an object-oriented programming language (e.g., JAVA™) or a mark-up language (e.g., XML).
In an interactive document assembly technique using an Integrated Interactive Document Configuration (IDC) system, as described in commonly-assigned Ser. No. 09/497,802 entitled “METHOD AND SYSTEM FOR INTERACTIVE DOCUMENT CONFIGURATION” incorporated herein by reference in its entirety, an object model is used to describe the domain elements that a document's text directly or indirectly refers to, the object model may be captured and linked to the document. This object model is called the document's “domain model”.
Hitherto the present invention, the lack of an explicit mechanism for linking a document variable to an expression that facilitated reference to any element in an object model discourages the use of powerful object modeling techniques for independently representing the domain content of a document.
Without the loose coupling afforded by the separate but linked content model, it becomes difficult and time-consuming to ensure that variables of one component refer to the same domain element that other occurrences of that variable from other components (e.g., of the same assembly) refer. Hitherto the present invention, there has been neither method or system for allowing-such an advantage, nor the recognition that the lack of such loose coupling has been a problem.